package com.fdb.efp.nls.service.dao;

import com.fdb.efp.nls.service.domain.SOrg;
import com.fdb.efp.nls.service.vo.SOrgVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface SOrgDao {
	
	public int insertSOrg(SOrg sOrg);
	
	public int deleteByPk(SOrg sOrg);
	
	public int updateByPk(SOrg sOrg);
	
	public SOrg queryByPk(SOrg sOrg);
	
	public List<SOrg> queryAllOwnerByPage(SOrg sOrg);
	
	public List<SOrg> queryAllCurrOrgByPage(SOrg sOrg);
	
	public List<SOrg> queryAllCurrDownOrgByPage(SOrg sOrg);
	
	public List<SOrg> queryLoginUserLeageOrgCodeByPage(SOrg sOrg);

	public List<SOrg> queryByParentCode(SOrg sOrgVo);
	
	public List<SOrg> queryLeageOrgsByPage(SOrg sOrg);
	
	public List<SOrg> queryOrgTrees(SOrgVO sOrgVO);
	/**
	 * 获取当前登录下的下属机构,根据法人机构过滤
	 * @param sOrg
	 * @return
	 */
	public List<SOrg> queryLoginOnlyLegalOrgCodeByPage(SOrg sOrg);

	public int updateByFtp(SOrg sOrg);
	/**
	 * 根据查询条件查询机构
	 * @param sOrgVO
	 * @return
	 */
	public List<SOrg> queryOrgByConditionByPage(SOrgVO sOrgVO);
	
	/**
	  * 根据条件不分页查询机构信息
	  * @param sOrgVO
	  * @return
	  * @author qiuyf
	  * @since 2019年3月2日 下午4:36:00
	  * @version 1.0
	 */
	public List<SOrg> queryAllOrgByCondition(SOrgVO sOrgVO);

	/**
	 * 
	 * TODO <br>
	 * 0.1:wanglihua:2019年4月19日 上午10:19:28:TODO <br>
	 * @author wanglihua
	 * @since 2019年4月19日 上午10:19:28
	 * @date 2019年4月19日 上午10:19:28
	 * @version 0.1 初始为0.1,后续变更则修改
	 */
	public SOrg queryOrgId(@Param("orgCode") String nlsOperOrgid);

	List<SOrg> queryAllOrgs();

	/**
	 * 通过机构代码递归获取父级机构: <br>
	 * 0.1:caoxin:2019/7/8 14:55: <br>
	 * @author caoxin
	 * @return
	 * @since 2019/7/8 14:55
	 * @date 2019/7/8 14:55
	 * @version 0.1
	 */

    List<SOrgVO> queryforEachOrgsByChildOrgCode(@Param("childOrgCode") String childOrgCode);

	/**
	 * 通过机构编号查询与之关联的上下级机构信息
	 * @param orgCode
	 * @return
	 */
	List<SOrg> queryAllByOrgCode(@Param("orgCode") String orgCode);
}
